<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>最长回文子串</title>
  </head>
  <body>
    <script>
      var s = "aabaa";
      //---------中心扩散法---------
      // 解题思路  三种情况
      // 1. 字符串长度小于2，直接返回字符串
      // 2.一种是回文子串长度为奇数（如aba，中心是b）
      // 3.另一种回文子串长度为偶数（如abba，中心是b，b）
      // 循环遍历字符串 对取到的每个值 都假设他可能成为最后的中心进行判断
      var longestPalindrome = function (s) {
        var sLength = s.length;
        var child = "";
        if (s.length < 2) {
          return s;
        }
        for (let i = 0; i < sLength; i++) {
          //情况二 字串长度为奇数
          childPalindrome(i, i);
          //情况三 字串长度为偶数
          childPalindrome(i, i + 1);
        }
        function childPalindrome(x, y) {
          while (x >= 0 && y < sLength && s[x] == s[y]) {
            x--;
            y++;
          }
          if (y - x - 1 > child.length) {
            child = s.slice(x + 1, y);
            console.log(child);
          }
        }
        return child;
      };
      console.log(longestPalindrome("aaba"));
    </script>
  </body>
</html>
